Systems and methods for facilitating side-channel communications during shared communication session

ABSTRACT

Systems and methods for providing side-channel communications to supplement a shared communication channel are provided. Participant devices within a side-channel communication group are configured to receive a first audio stream associated with the shared communication channel and a second audio stream associated with the side-channel communication group. A host platform or a participant device may mix the first and second audio streams to produce a composite output audio stream that enables users to listen to both audio shared to shared communication channel and audio generated by other members of the side-channel communication group.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 17/160,695, filed Jan. 28, 2021, the entirety ofwhich is expressly incorporated reference herein.

FIELD OF THE DISCLOSURE

The present application relates generally to facilitating side-channelcommunications during a shared communication session and, moreparticularly, to mixing audio streams of the side-channel and the sharedcommunication session to generate a composite audio output stream.

BACKGROUND

Online classes are typically support via a shared video conferenceexperience. A host sets up a shared communication channel (e.g., a videoconference call) for participants to join. The host may present livestreamed content (e.g., a live training class or lecture) or previouslyrecorded content (e.g., a past training class or lecture). Theparticipants of the shared communication channel can then view thecontent presented by the host.

Often, participants in a shared communication channel know one another.If the class was presented offline, participants that know each othertend to group so that they can quietly communicate with one anotherwithout disturbing the other participants in the class or lecture.However, this ability to engage in private conversations during a classis not provided by video conference technology. Conventionally,participants must establish a separate video conference (e.g., via abreak out room or creating a new video conference) or speak to theentire class. Neither conventional solution adequately replicates theability to quietly converse with other participants similar to offlineclasses.

Therefore, there is a need for systems and method of facilitatingside-channel communications during a shared communication session.

SUMMARY

In one embodiment, a system for providing side-channel communications tosupplement a shared communication channel is provided. The systemincludes (i) one more processors; (ii) one or more transceiversconfigured to receive a plurality of audio streams from a plurality ofaudio sources, wherein the plurality of audio sources include a hostaudio source and a plurality of participant audio sources correspondingto a plurality of participant devices; and (iii) one or morenon-transitory memories configured to store (a) an indication that twoor more participant devices of the plurality of participant devices aremembers of a side-channel communication group, and (b) computerexecutable instructions that, when executed via the one or moreprocessors, cause the system to (1) for each participant device that isa member of the side-channel communication group, (a) generate aside-channel audio stream by combining the audio streams received fromother members of the side-channel communication group, (b) generate anoutput audio stream by combining the side-channel audio stream with theaudio stream from the host audio source, and (c) transmit, to theparticipant device of the member of the side-channel communication groupand via the one or more transceivers, the output audio stream; and (2)for participant devices that are not members of the side-channelcommunication group, transmit, to the participant device and via the oneor more transceivers, the host audio stream.

In another embodiment, a method for participating in side-channelcommunications to supplement a shared communication channel is provided.The method includes (1) joining, by one or more processors, the sharedcommunication channel; (2) forming, by the one or more processors, aside-channel communication group with at least one other participantdevice of the shared communication channel; (3) receiving, from aserver, a host audio stream generated by a host device of the sharedcommunication channel; (4) receiving, from the server, a side-channelaudio stream that includes audio data generated by the at least oneother participant device included in the formed side-channelcommunication group; and (5) outputting, by the one or more processors,a composite audio stream formed from the host audio stream and theside-channel audio stream.

In yet another embodiment, a non-transitory computer readable medium isprovided. The computer-readable medium stores computer-executableinstructions that, when executed by one or more processors, cause theone or more processors to (1) join a shared communication channel; (2)form a side-channel communication group with at least one otherparticipant device of the shared communication channel; (3) receive,from a server, a host audio stream generated by a host device of theshared communication channel; (4) receive, from the server, aside-channel audio stream that includes audio data generated by the atleast one other participant device included in the formed side-channelcommunication group; and (5) output a composite audio stream formed fromthe host audio stream and the side-channel audio stream.

BRIEF DESCRIPTION OF THE DRAWINGS

The Figures described below depict various aspects of the system andmethods disclosed herein. Each figure depicts a particular aspect of thedisclosed system and methods, and each of the figures is intended toaccord with a possible aspect thereof. Further, wherever possible, thefollowing description refers to the reference numerals included in thefollowing figures, in which features depicted in multiple figures aredesignated with consistent reference numerals.

There are shown in the Figures arrangements which are presentlydiscussed, it being understood, however, that the present embodimentsare not limited to the precise arrangements and instrumentalities shown,wherein:

FIGS. 1A and 1B are a block diagram of an example environment thatincludes a host platform configured to facilitate the side-channelcommunication techniques described herein;

FIG. 2 is a flow diagram illustrating the audio paths for a sharedchannel and a side-channel, in accordance with the techniques describedherein;

FIG. 3A is an example user interface presented by a participant deviceto request the formation of a side-channel communication group inaccordance with the techniques described herein;

FIG. 3B is an example user interface presented by a participant deviceto accept a request to join a side-channel communication group inaccordance with the techniques described herein;

FIG. 3C is an example user interface presented by a participant devicewhile within a side-channel communication group in accordance with thetechniques described herein;

FIG. 4 is an example flow diagram for mixing audio for a side-channelcommunication group with audio of a shared communication channel via thehost platform of FIGS. 1-2; and

FIG. 5 is an example flow diagram for mixing audio for a side-channelcommunication group with audio of a shared communication channel via aparticipant device of FIGS. 1-2.

The Figures depict preferred embodiments for purposes of illustrationonly. Alternative embodiments of the systems and methods illustratedherein may be employed without departing from the principles of theinvention described herein.

DETAILED DESCRIPTION

Although the following text sets forth a detailed description ofnumerous different embodiments, it should be understood that the legalscope of the description is defined by the words of the claims set forthat the end of this patent and equivalents. The detailed description isto be construed as exemplary only and does not describe every possibleembodiment since describing every possible embodiment would beimpractical. Numerous alternative embodiments may be implemented, usingeither current technology or technology developed after the filing dateof this patent, which would still fall within the scope of the claims.

Embodiments of the present disclosure include a host platform thatsupports shared communication channels between a host device and aplurality of participant devices. As it is used herein, a “sharedcommunication channel” is a communication channel in which eachparticipant device is configured to contemporaneously receive contentprovided by a host device. Typically, the content is video contentassociated with a video stream and an audio stream. However, thesetechniques may also be applied to visual and audio streams of sharedaugmented or virtual reality content.

The present disclosure generally refers to the content of the sharedcommunication channel as being associated with a fitness and/or wellnessplatform. For example, the shared communication channel may be a livefitness class hosted by a trainer device. As another example, the sharedcommunication channel may be a pre-recorded fitness class hosted by thehost platform itself. That said, the present disclosure may be appliedto many different types of content, such as lectures, presentations,live-streamed gaming, sporting, or other types of live performancesand/or events, or other types of content associated with a plurality ofparticipants viewing shared content presented by a host device. For manytypes of content, individual participants are generally muted and/orcannot readily communicate with particular our participants by speechvia the platform hosting the presented content.

As it is used here, a “side-channel communication group” refers to anaudio channel established between two or more participants of the sharedcommunication channel. It should be appreciated that participation inthe shared communication channel may cause a video stream from eachparticipant device to be routed to the other participant devices of theshared communication channel. However, due to the large number ofparticipants in the shared communication channel, the audio streamassociated with the video stream shared to the other participants istypically muted. Accordingly, the side-channel communication groupestablishes an additional audio stream that is routed to the participantdevices of the side-channel communication group. This additional audiostream is not routed to the other participant devices of the sharedcommunication channel that are not included in the side-channelcommunication group. As a result, the participant devices of theside-channel communication group receive audio and video streams ofcontent presented by the host to the shared communication channel and anadditional audio stream corresponding to the side-channel communicationgroup.

Receiving two audio streams at a participant device presents technicalchallenges on how to prioritize the audio streams to ensure that eachparticipant in a side-channel communication group is still able tomeaningfully understand the content of the shared communication channel.Accordingly, embodiments disclosed herein relate to audio mixingtechniques that mix the shared communication channel audio stream andthe side-channel communication group audio stream to generate acomposite audio stream presented to participant. The audio mixer may beimplemented centrally at the host platform and/or at the individualparticipant devices. In some embodiments, the audio mixer is configuredto produce a composite audio stream where a volume level of the sharedcommunication channel audio stream is higher than a volume level of theside-channel communication group audio stream volume level. As it isused herein, volume level does not refer to an instantaneous magnitudeof the audio stream, but an amount of gain applied to the audio stream.Generally, gains between 0 and 1 decrease the volume level of an audiostream within the composite audio stream and gains over 1 increase thevolume level of an audio stream within the composite audio stream.

In some embodiments, the audio mixer dynamically adjusts the volumelevels of the shared communication channel audio stream and theside-channel communication group audio stream. As one example, in thecontext of a fitness class, the host trainer may instruct theparticipants to engage in a first exercise and not speak again untilinstructing the participants to engage in a second exercise. In thisinterim period, the audio mixer may detect that a magnitude of the audiostream from the host device is below a threshold magnitude and increasethe volume level of side-channel communication group audio streams.Similarly, when the instructor the provides the second instruction tothe participants, the audio mixer may detect that the magnitude of theaudio stream from the host device is above a threshold magnitude andreset the volume level of the side-channel communication group audiostreams to a default level. To measure the magnitude of the audio streamfrom the host device, the audio mixer may calculate a rolling average ofmagnitudes for a prior time period (e.g., 250 msec, 500 msec, 1 sec,etc.).

To provide a smooth audio experience, the audio mixer may detect thatthe magnitude of the audio stream from the host is below the thresholdmagnitude for a threshold duration before adjusting the volume level ofthe side-channel communication group audio stream. It should beappreciated that this duration may vary depending on the type of contentpresented by the host device. For example, the gaps between instructorcommentary may be shorter for a high-intensity interval training (HIIT)class than a meditation class. Accordingly, the threshold duration maybe shorter for the HIIT class than the meditation class. As another wayto smooth out the dynamic volume shifts, the audio mixer may graduallyincrease volume of the side-channel communication group audio stream upto a maximum volume level. Similar to the threshold duration, the rateof increase may vary depending on the type of content presented by thehost device.

In some embodiments, the host is able to control when the side-channelcommunication groups are enabled. For example, the content presented bythe host device may include a break period, an open discussion period, aQ&A period, and so on. Unlike the other periods of the content presentedby the host device, participant participation is encouraged during theseperiods. Accordingly, when the host disables the side-channelcommunication groups, the audio streams generated by a participantdevice are routed to the shared communication channel, not theside-channel communication group. Similarly, when the host re-enablesthe side-channel communication groups, the audio streams generated by aparticipant device included in a side-channel communication group areagain routed to the side-channel communication group, and not the sharedcommunication channel.

In some embodiments, a user interface presented to the host includesinterface elements that enable manual control over enabling/disablingthe side-channel communication groups. Additionally or alternatively,some types of content may include a schedule that includes indicationswhen to enable or disable side-channel communication groups. Forexample, a fitness class may schedule the first 45 minutes to activetraining where side-channel communication groups are enabled, followedby a 5-minute break period side-channel communication groups aredisabled, and then another 45 minutes of active training where theside-channel communication groups are enabled again. In this example,the host device may automatically enable or disable the side-channelcommunication groups in accordance with the schedule. As a result, thehost platform is able to control the routing of audio streams ofparticipant devices to improve the participant experience when viewingcontent presented by the host device.

Referring now to FIGS. 1A and 1B, illustrated is an example environment100 that includes a host platform 115 configured to host sharedcommunication channels. The host platform 115 may be a server or othertype of computing platform. In some scenarios, the host platform 115 isoperated by a provider of livestreamed and/or pre-recorded content, suchas fitness classes or lectures. While FIG. 1A illustrates that hostplatform 115 as a single entity, in other embodiments, the host platform115 may be multiple entities acting in conjunction with one another. Forexample, in some embodiments, the host platform 115 is implemented in adistributed computing environment, such as a cloud computingenvironment.

To join shared communication channel supported by the host platform 115,the participants interact with a participant device 105, such as mobilephone 105 a, laptop computer 105 b, a tablet, a smart wearable device(e.g., smart glasses, a smart watch, smart apparel), a home personalassistance device, connected fitness equipment, or any other electronicdevice that is normally used to access internet-based content. Theparticipant devices 105 are communicatively coupled to the host platform115 via one or more wired or wireless networks 110 that facilitate anytype of data communication via any current or future-developed standardor technology (e.g., GSM, CDMA, TDMA, WCDMA, LTE, EDGE, OFDM, GPRS,EV-DO, New Radio, UWB, IEEE 802 including Ethernet and Wi-Fi, WiMAX,Bluetooth, and others). Although FIG. 1 only illustrates two participantdevices 105, the environment 100 may include any number of participantdevices 105.

The host platform 115 includes one or more processors 128 configured toexecute instructions that form the various applications, modules, andother components of the search platform 115 described herein. In cloudcomputing embodiments, the processors 128 may be physically located indifferent hardware entities (e.g., servers) while still being logicallyconnected to execute the various tasks described herein. The processors128 may include central processing units (CPUs), graphics processingunits (GPUs), application-specific integrated circuits (ASICS), and/orany other types of computer processors. While the disclosure maygenerally refer to the processors 128 executing the various tasksdescribed herein, particular tasks may be better suited to one type ofprocessor. For example, some of the audio mixing techniques disclosedherein may be more efficiently executed by dedicated audio processors orGPUs than CPUs. Accordingly, in embodiments that include multiple typesof processors, the host platform 115 may utilize a particular type ofprocessor to execute instructions that are more efficiently executed bythe particular type of processor.

In the illustrated embodiment, the host platform 115 also includes aprogram memory 120, a random-access memory (RAM) 127, and aninput/output (I/O) circuit 129, all of which may be interconnected viaan address/data bus 126. It should be appreciated the memory of thesearch platform 115 may include multiple RAMs 127 and multiple programmemories 120 implemented as any type of memory, such as semiconductormemory, magnetically readable memory, or optically readable memory, forexample. Similarly, although the I/O circuit 129 is shown as a singleblock, it should be appreciated that the I/O circuit 129 may include anumber of different types of I/O circuits. For example, the I/O block129 may include one or more transceiver circuits to facilitatecommunications over the networks 110 and/or directly with one or moredatabases.

The program memory 120 may store any number of applications, routines,tools, or other collections of computer-readable instructions thatsupport the audio mixing techniques described herein. For example, theprogram memory 120 may include a hosting service 121 configured toestablish shared communication channels, an audio mixing application 122configured to mix the audio streams from a shared communication channeland a side-channel communication group to produce a composite audiostream, and a content scheduling program 123 configured to supportscheduling the establishment of shared communication channels (e.g., viathe hosting service 121) and/or demarcation of time periods withincontent presented to the established shared communication channel. Ofcourse, other applications that relate to shared communication channelsmay be stored at the program memory 120 (e.g., an application configuredto support social networking functionality between users of the hostplatform 115).

As illustrated, the host platform 115 is connected to a user database130 that stores user profiles corresponding to users of the hostplatform 115. For example, the user profile may include an indicationidentifying the particular participant device 105 used by the user toview shared communication channels (e.g., a MAC address, a serialnumber, a MEID, a UICC, or other unique identifier), a network location(e.g., IP address) at which the participant is accessing the hostplatform 115, an indication of other users to which the user isconnected, an indication of past shared communication channels joined bythe user, an indication of future shared communication channels the userwants to join, a user identifier, and/or other data related to userinteractions with the host platform 115. As another example, the hostplatform 115 may be associated with different tiers of service.Accordingly, in some embodiments, the ability to be a member ofside-channel communication groups is a premium feature restricted toparticular classes of users. In these embodiments, the user profile mayinclude a flag or other indication indicative of whether or not the userhas access to participate in side-channel communication groups. The userdatabase 130 may utilize any known database architecture. For example,in some embodiments, the user database 130 is a distributed file system,such as a cloud storage solution.

In addition to the participant devices 105, the host platform 115 mayalso be connected to a host device 113 via the networks 110. Similar tothe participant devices 105, the host device 113 may be s mobile phone,a laptop computer, a tablet, a smart wearable device (e.g., smartglasses, a smart watch, smart apparel), a home personal assistancedevice, a connected fitness equipment, or any other electronic devicethat is normally used to access internet-based content. Although FIG. 1Aonly depicts a single host device 113, the environment 100 may includeany number of host devices 113.

As described herein, a host may interact with the host device 113 toinitiate a shared communication channel hosted by the host platform 115.For example, an application (e.g., a dedicated application associatedwith the host platform 115 or a browser viewing data at websitesupported by the host platform 115) executing on the host device 113 mayinterface with the hosting server 121 to initiate the sharedcommunication channel. In some embodiments, the interface is anapplication programming interface (API) corresponding to the hostingservice 121. Upon receiving an indication from the host device 113 toinitiate the shared communication channel, the host service 121 mayestablish the shared communication channel to which content from thehost device 113 is presented to the shared communication channel. Aspart of establishing the shared communication channel, the hostingservice 121 may assign the shared communication channel an identifier(e.g., a session ID) to be able to distinguish between any concurrentlyhosted shared communication channels. In some embodiments, the hostingservice 121 may assign a channel type (e.g., yoga, HIIT, lecture, etc.)to the shared communication channel.

After the hosting service 121 establishes the shared communicationchannel, participants may join the shared communication channel viarespective participant devices 105. Upon joining the sharedcommunication channel, the participant device 105 may be configured topresent a video stream to the shared communication channel to be viewedby other participants of the shared communication channel.

The hosting service 121 may maintain a list of participants and/orparticipant devices 105 that joined the shared communication channel.For each participant, the host service 121 may query the user database130 to determine whether any connected users to the participant havealso joined the shared communication channel. If there are otherconnected users to the participant in the shared communication channel,the host service 121 may configure the user interface presented by thecorresponding participant device 105 to prioritize the connected users.For example, the host service 121 may pin the video stream from theconnected users' participant devices 105 to a particular location in theuser interface. As another example, the host service 121 may include auser interface element that presents a list of the participant'sconnected users currently in the shared communication channel.

As described herein, a first participant device 105 may be configured tosend a request to a second participant device 105 corresponding to aconnected user to establish a side-channel communication group. Inparticular, the first participant device 105 may transmit the request tothe host platform 115 via the interface of the hosting service 121,which then relays the request to the second participant device 105. Inembodiments where participation in side-channel communication groups isrestricted to particular classes of users, the hosting service 121 mayquery the user profile of the second participant maintained at the userdatabase 130 to verify the second participant has sufficient permissionto join a side-channel communication group before relaying the requestto the second participant. If the second participant does not havesufficient permission, the hosting service 121 may instead send anotification to the first participant device 105 informing the firstparticipant as such.

To establish the side-channel communication group, the hosting service121 may be configured to create an entry in the record corresponding tothe shared communication channel in which the side-channel communicationgroup is to be established. The hosting service 121 may assign theside-channel communication group an identifier (e.g., a group ID) todistinguish between multiple side-channel communication groups formedwithin the same shared communication channel. Accordingly, the entry mayinclude an indication of the side-channel communication group identifierand a list of the participants that are included in the side-channelcommunication group (and/or network addresses of participant devices 105associated therewith). After establishing the side-channel communicationgroup, the hosting service 121 may update the entry as participants joinor leave the side-channel communication group. When an audio stream isreceived from a participant device 105 included the side-channelcommunication group, the hosting service 121 queries the entry toidentify the other participant devices 105 included in the side-channelcommunication group to which the audio stream should be routed.

To route the audio stream to the other participant device 105, thehosting service 121 may invoke the audio mixer 122 to combine the audiostream with the audio stream of the shared communication channel toproduce a composite audio stream. The audio mixer 122 may apply thevarious audio mixing techniques disclosed herein to produce thecomposite audio stream. For example, the audio mixer 122 may overlay theaudio streams onto one other to produce a composite output audio streamthat includes the component audio streams. When overlaying the audiostreams, the audio mixer may set various parameters, such as a volumelevel, to adjust the component audio streams. In some embodiments, theaudio mixer 122 may analyze the content type identifier associated withthe shared communication channel to set parameters associated withdynamically mixing the audio streams. The hosting service 121 may routethe composite output audio stream to the corresponding participantdevices included in the side-channel communication group.

As described herein, in some embodiments, the host platform 115initiates the shared communication channel, not the host device 113. Forexample, content previously presented to a shared communication channelby a host device 113 may be archived by the hosting platform 115 forsubsequent replays. Accordingly, a user may schedule a replay via thecontent scheduling application 123. When the host platform 115 detectsthe time is the scheduled replay time, the content schedulingapplication 123 may automatically initiate the shared communicationchannel and begin presenting the archived replay to the sharedcommunication channel.

The content scheduling application 123 may also provide the hostingserver 121 with a schedule for content presented to the sharedcommunication channel. As part of establishing the shared communicationchannel, the hosting service 121 may obtain a corresponding schedulefrom the content scheduling application 123. For pre-recorded content, auser may demarcate periods where side-channel communications are enabledand/or disabled (e.g., identify periods associated with breaks). Forlivestreamed content, the host may upload a planned schedule to the hostplatform 115. The schedule may indicate demarcate periods when the hostexpects that side-channel communications should be enabled/disabled.When detecting a shift into a new period, the hosting service 121 mayautomatically enable/disable the side-channel communication groups inaccordance with the schedule. Additionally or alternatively, to accountfor any deviations from the schedule, the hosting service 121 maytransmit an alert to the host device 113 that enables the host tomanually enable/disable side-channel communication groups.

As illustrated, the host platform 115 is also connected to a musicserver 114 via the networks 110. Many types of content presented toshared communication channels include background music. Due to usagerights restrictions on music, the hosting platform 115 may prevent hostsfrom directly playing background music in their livestreams. Instead,the host may create or modify the schedule to include a music schedulebased on music files available from the music server 114. Accordingly,the hosting service 121 and/or content scheduling application 123 may beconfigured to transmit schedule information to the music server 114 suchthat the music server 114 transmits, to the participant devices 105included in the shared communication channel, an audio stream inaccordance with the music schedule. While FIG. 1A illustrates the musicserver 114 being external to the host platform 115, in some embodiments,the music server 114 may be a component of the host platform 115.

Similar to the host platform 115 and as shown in FIG. 1B, theparticipant device 105 includes the program memory 140, one or moreprocessors 148, a random-access memory (RAM) 147, a display 144, audiooutput 145, and an input/output (I/O) circuit 149, all of which may beinterconnected via an address/data bus 146. It should be appreciated thememory of the participant device 105 may include multiple RAMs 147 andmultiple program memories 140 implemented as any type of memory, such assemiconductor memory, magnetically readable memory, or opticallyreadable memory, for example. Similarly, although the I/O circuit 149 isshown as a single block, it should be appreciated that the I/O circuit149 may include a number of different types of I/O circuits. Forexample, the I/O block 149 may include one or more transceiver circuitsto facilitate communications over the networks 110.

In some embodiments, the program memory 140 includes a browserapplication 142 that enables the participant to access a websiteassociated with the host platform 115. Additionally or alternatively,the program memory 140 includes a dedicated application 143 forinteracting with the host platform 115. The dedicated application 143may be downloaded to the participant device 105 via an applicationstore, downloaded from a website (e.g. via a plugin or the like), orotherwise installed onto the participant device 105. In someembodiments, the dedicated application 143 is a standalone executableapplication that generates and presents interfaces on the display 144associated with the hosting platform 115. While the instant disclosuredescribes various functionality performed by the dedicated application143, any such description envisions that alternate performance of thefunctionality by the browser 142.

In some embodiments, the dedicated application 143 includes an audiomixer configured similar to the audio mixer 122 of the host platform115. For example, the audio mixing application 122 may combine audiostreams of each participant of the side-channel communication group intoa side-channel audio stream. The hosting service 121 may then route boththe side-channel audio stream and the audio stream of the sharedcommunication channel to the participant device 105 for mixing by theaudio mixer of the dedicated application 143. As another example, themusic server 114 may be configured to transmit the audio stream of musicfiles directly to the participant device 105 of the shared communicationchannel. Accordingly, the audio mixer of the dedicated application 143may be configured to mix the music audio stream, the sharedcommunication channel audio stream, and/or the side-channel audiostreams into a composite output audio stream.

As illustrated, the participant device is connected to an external audiooutput device 108 via the I/O 149. For example, the external audiooutput device may be an external speaker or other electronic deviceconnected via a wired connection (e.g., analog or digital communicationwires) or a wireless connection (e.g., Bluetooth, Wi-Fi, etc.). In someembodiments, rather than mixing the shared communication channel audiostream and the side-channel audio stream into a composite stream, thededicated application 143 may be configured to route the audio streamsto different audio outputs. For example, the dedicated application 143may route the shared communication channel audio stream to the audiooutput 145 of the participant device 105 and the side-channel audiostream to the external audio output 108, or vice versa. As anotherexample, the dedicated application 143 may route the composite audiostream to audio output 145 and the music audio stream to the externalaudio output 108, or vice versa.

With concurrent reference to FIGS. 1A-1B, FIG. 2 depicts a flow diagram200 illustrating the audio paths for the audio steams associated with ashared communication channel 170 and a side-channel communication group180. As illustrated, the shared communication channel 170 includes threeparticipant devices 105 a, 105 b, and 105 c. Of course, in otherscenarios, the shared communication channel could have any number ofadditional participant devices. In addition to being participants of theshared communication channel 170, the participant device 105 a and theparticipant device 105 b have formed the side-channel communicationgroup 180 that does not include the participant device 105 c. In otherscenarios, the side-channel communication group 180 may also includeadditional participant device 105.

As described herein, the host device 113 is configured to presentcontent (e.g., a livestreamed class) to the shared communicationchannel. It should be appreciated in some alternative embodiments, thehost platform 115 is configured to present the content to the sharedcommunication channel 170 exclusive of the host device 113 (e.g., whenthe host platform 115 is presenting pre-recorded content). Accordingly,any reference to the capability of the host device 113 to configure ashared communication channel and/or present content to the sharedcommunication channel herein envisions an alternate implementation bythe host platform 115 itself.

The audio stream generated by host device 113 is routed to the sharedcommunication channel 170. More particularly, the host device 113transmits the content to the host platform 115 via the networks 110.This transmission may include an identifier of the host device 113(e.g., a device identifier or an IP address) and/or an identifier of theshared communication channel (e.g., a session ID). In response, thehosting service 121 detects that the identifier(s) and identifies thecorresponding shared communication channel hosted at the host platform115. The hosting service 121 then identifies the participants of theshared communication channel 170 (e.g., the participants 105 a, 105 b,and 105 c) and routes the audio stream to each identified participantvia the networks 110.

Additionally, because the participant device 105 a and 105 b are membersof the side-channel communication group 180, the participant devices 105a and 105 b also transmit respective audio streams to the host platform115 via the networks 110. Similar to the audio stream from the hostdevice 113, the participant devices 105 a and 105 b may include anidentifier of the participant device 105 (e.g., a device identifier oran IP address), an identifier of the shared communication channel (e.g.,a session ID), and/or an identifier of the side-channel communicationgroup (e.g., a group ID). In response, the hosting service 121 detectsthat the identifier(s) and identifies the corresponding sharedcommunication channel hosted at the host platform 115. The hostingservice 121 then identifies the participants of the side-channel 180(e.g., the participants 105 a and 105 b) and routes the audio stream tothe identified participants via the networks 110. It should beappreciated that the audio stream generated by a particular participantdevice 105 may not be routed back to the same participant device 105.That is, in the illustrated scenario, the participant device 105 areceives the audio stream generated by participant device 105 b and theparticipant device 105 b receives the audio stream generated by theparticipant device 105 a. In scenarios where the side-channelcommunication group 180 includes three or more participants, the hostingservice 121 may combine the participant audio streams such that aside-channel audio stream is created for each side-channel communicationgroup member that excludes their own respective audio stream.

While FIG. 2 illustrates each participant device 105 separatelyreceiving the audio stream from the shared communication channel 170 andtheir respective side-channel audio stream from the side-channelcommunication 180, the hosting service 121 may instead route the audiostreams to the audio mixer 122 to produce a composite audio stream inaccordance with techniques described herein. Accordingly, the hostingservice 121 may be configured to transmit respective composite audiostreams for each participant of the side-channel communication group 180via the networks 110.

As illustrated the music server 114 is also configured to route a musicaudio stream (“music stream”) to each participant device 105 that joinedthe shared communication channel 170. For example, the host device 113and/or the host platform 115 may have transmitted a music schedule forthe shared communication channel 170 to the music server 114.Accordingly, the music server may be configured to transmit the musicstream to the participant devices 105 in accordance with the receivedmusic schedule. To facilitate proper routing of the music stream by themusic server 114, the host platform 115 may transmit to the music serveran indication of each participant device 105 within the sharedcommunication channel 170 that corresponds to the music schedule. Asparticipants join or leave the shared communication channel 170, thehost platform 115 may update the music server 114 accordingly.

It should be appreciated that while the audio path between the hostdevice 113 and the shared communication channel 170 and the audio pathbetween the participant device 105 and the shared communication channelare illustrated as being unidirectional, these audio paths may becomebidirectional when side-channel communication groups are disabled.

Turning now to FIG. 3A-3C, illustrated are example user interfacesdisplayed by a participant device 105 as part of viewing contentpresented to a shared communication channel (such as the sharedcommunication channel 170 of FIG. 2) supported by the host platform 115.More particularly, the user interfaces may be presented by the browser142 or the dedicated application 143 executing on the participant device105. It should be appreciated that the participant device 105 may onlybe configured to display these user interfaces if the dedicatedapplication 143 determines that the user profile corresponding to theparticipant device 105 has sufficient permissions to join a side-channelcommunication group.

Starting with FIG. 3A, illustrated is an example user interface 300presented by the participant device 105 to facilitate generating arequest to form of a side-channel communication group with anotherparticipant of the shared communication channel. The user interface 300includes a first display area 302 for displaying video streams presentedto the shared communication channel by the host device 113 and a seconddisplay area 304 for displaying video streams presented to the sharedcommunication channel by other participant devices 105 that have joinedthe shared communication channel. As illustrated, the second displayarea 304 may be overlaid on top of the first display area 302.

As described herein, the participant corresponding to the user interface300 may be associated with a user profile maintained at the userdatabase 130 that indicates a plurality of connected users. Accordingly,the hosting service 121 may transmit to the participant device 105 alist of connected users have joined the shared communication channel. Inresponse, the dedicated application 143 may be configured to prioritizethe video streams received from the participant device 105 correspondingto the connected users in the second display area 304. For example, thededicated application may pin those video streams to the second displayarea 304.

As illustrated, the user interface 300 also includes a selectioninterface 306 that enables the user to generate a selection of usersfrom the received list of connected users. The selection interface 306may enable the user of the participant device 105 to select any numberof the listed connected users. While FIG. 3A illustrates a selectioninterface where the user selects the connected user by interacting withthe indication of connected user itself, alternate user interface meansof generating a selection are envisioned (e.g., radio selection buttons,checkboxes, etc.). In embodiments where access to side-channelcommunication groups is restricted to only certain participants, thelist of connected users received by the participant device 105 mayinclude an indication of whether or not each connected user is permittedto join side-channel communication groups. Accordingly, the selectioninterface 306 may distinguish between connected users that are permittedto join side-channel communication groups and those that are not. Forexample, the selection interface 306 may grey-out or otherwise disablethe selection of connected users that are not permitted to joinside-channel communication groups.

The user interface 300 also includes a selection confirmation element308. When the user interacts with the selection confirmation element308, the dedicated application 143 may be configured to generate arequest to invite the users selected via the selection interface 306.More particularly, the dedicated application 143 may cause theparticipant device 105 to transmit the request to the host platform 115to route the request to the corresponding participant devices 105 of theselected users.

Turning to FIG. 3B, illustrated is an example user interface 320displayed by the participant device 105 to facilitate accepting arequest to join a side-channel communication group. More particularly,the participant device 105 may be configured to display the userinterface 320 in response to receiving a request to join theside-channel communication group from the host platform 115. The userinterface 320 includes a first display area 322 for displaying videostreams presented to the shared communication channel by the host device113 and a second display area 324 for displaying video streams presentedto the shared communication channel by other participant devices 105that have joined the shared communication channel. It should beappreciated that the first and second display areas 322 and 324 may begenerated in a similar manner as described with respect to the first andsecond display areas 302 and 304 of FIG. 3A.

As illustrated, the user interface 320 includes a notification element326 that informs the user that the request to join a side-channelcommunication group was received by the participant device 105. Thenotification element 326 may indicate the particular connected user thatgenerated the request based upon an indication of the particularconnected user included in the request.

The user interface 320 also includes an acceptance element 328 andrejection element 329 that enables the user to accept or reject therequest, respectively. In response to detecting a user interaction withthe rejection element 329, the participant device 105 may be configuredto transmit a rejection notification to the host platform 115 or simplycause the participant device 105 to stop displaying elements 326, 328,and 329 thereby letting the request time out. On the other hand, inresponse to detecting a user interaction with the acceptance element328, the participant device 105 may be configured to transmit anacceptance notification to the host platform 115. In response toreceiving the acceptance notification, the host platform 115 may causethe participant device 105 to join the side-channel communication groupthe requestor is currently a member of or establish a new side-channelcommunication group with the requestor.

FIG. 3C illustrates an example user interface 340 presented by theparticipant device 105 while within a side-channel communication group(such as the side-channel communication group 180 of FIG. 2). The userinterface 340 includes a first display area 342 for displaying videostreams presented to the shared communication channel by the host device113 and a second display area 344 for displaying video streams presentedto the shared communication channel by other participant devices 105that have joined the shared communication channel. If there are moreconnected users in the shared communication channel than available fordisplay in the second display area 344, the participant device 105 mayprioritize the display of the connected users that are members of theside-channel communication group in the second display area 344.Otherwise, the first and second display areas 342 and 344 may begenerated in a similar manner as described with respect to the first andsecond display areas 302 and 304 of FIG. 3A.

The user interface 340 includes user side-channel communication grouppanel element 346 that includes an indication of other members of theside-channel communication group. The panel element 346 includes anelement 347 that enables the participant device 105 to generate arequest that another connected user joins the side-channel communicationgroup. For example, in response to interacting with the element 347, theparticipant device 105 may present the selection element 306 andselection confirmation element 308 of the user interface 300.Additionally, the panel element 346 includes an element 348 that enablesthe user to leave the side-channel communication group. Accordingly, inresponse to detecting a user interaction with the element 348, theparticipant device 105 may transmit a notification to the host platform115 that causes the host device 115 to remove the participant device 105from the side-channel communication group.

Additional or alternative user interfaces may provide similarcapabilities to that shown in FIGS. 3A-3C and/or may provide additionalcapabilities described herein. Furthermore, user interface techniquesmay be implemented that use audio input/output via a microphone and/orspeaker of the participant device 105, in various embodiments, tocommunicate via audio channels (e.g., voice commands).

FIG. 4 is an example flow diagram of an example method 400 for mixingaudio for a side-channel communication group (e.g. the side-channelcommunication group 180 of FIG. 2) with audio of a shared communicationchannel (e.g. the shared communication channel 170 of FIG. 2). A hostplatform (e.g., the host platform 115 of FIGS. 1-2) and/or applicationsexecuting thereon (e.g., the hosting service 121 and/or the audio mixer122 of FIG. 1A) may be configured to perform the steps of the method400. More particularly, the host platform 115 may perform the steps ofthe method 400 when one or more side-channel communication groups havebeen established as part of a shared communication channel. Accordingly,the host platform may store a data record corresponding to the sharedcommunication channel that includes an indication of the side-channelcommunication group and an indication of the members thereof.

The method 400 begins when the host platform generates, for a member ofthe side-channel communication group, a side-channel audio stream bycombining the audio streams received from the other members of theside-channel communication group (block 402). For example, the hostplatform may combine the audio streams using an audio mixer.Accordingly, the host platform may generate a different side-channelaudio stream for each member of the side-channel communication group.

At block 404, the host platform generates an output audio stream bycombining the side-channel audio stream with the audio stream from thehost audio source. For example, the host platform may use the audiomixer to combine the side-channel audio stream and the host audiostream. To prioritize audio from presented by the host device to theshared communication channel, the host platform may mix the side-channelaudio stream with the audio stream from the host audio source such thata volume level of the side-channel audio stream is less than a volumelevel of the audio stream from the host audio source.

As another example, the host platform may dynamically mix the host audiostream and the side-channel audio stream. For example, the host platformmay be configured to determine that a magnitude of the host audio streamis below a first threshold magnitude and increase the volume level ofthe side-channel audio stream within the output audio stream.Subsequently, the host platform may determine that the magnitude of thehost audio stream is above a second threshold magnitude, and decreasethe volume level of the side-channel audio stream within the outputaudio stream.

To smooth out the volume levels, the host platform may implementhysteresis techniques. As one example, the second threshold may be ahigher magnitude than the first magnitude. As another example, the hostplatform may determine that the magnitude of the host audio stream isbelow the first threshold magnitude for a threshold duration beforeadjusting the volume level of the side-channel audio stream. Thethreshold duration may vary depending on the type of sharedcommunication channel. For example, the host platform may categorize thecontents channel types and assign a threshold duration to each category.

At block 406, the host platform transmits, to the member of theside-channel communication group, the output audio stream. The hostplatform may be configured to obtain a network address corresponding tothe member's participant device from a record associated with the sharedcommunication channel and/or side-channel communication group.

As described herein, the host platform may enable the host device toenable and/or disable side-channel communication groups. Accordingly,the host platform may be configured to obtain an indication thatside-channel communications are disabled. In response, the host platformmay route audio to the participant devices of members of theside-channel communication group in a similar manner as participantdevices of the shared communication channel that are not members of aside-channel communication group. That is, the host platform may beconfigured to transmit a participant audio stream to each participantdevice of the shared communication channel when side-channelcommunications are disabled. The participant audio stream may be anaudio stream formed by mixing the audio streams received from the hostdevice and each other participant device in the shared communicationchannel.

In some embodiments, the host platform is configured to receive, via theone or more transceivers, an indication that a particular participantdevice is to be added to the side-channel communication group. Forexample, the indication may be received in response to a userinteracting with the acceptance element 328 of FIG. 3B. The hostplatform may then modify the indication of the participant devicesincluded in the side-channel communication group to include anindication of the particular participant device. In embodiments whereaccess to the side-channel communication groups are restricted to usershaving sufficient permission, the host platform may query thepermissions included in the user profile corresponding to particularparticipant device to ensure the particular participant device hassufficient permissions before modifying the indication of theside-channel communication group.

FIG. 5 is an example flow diagram for an example method 500 for mixingaudio of a side-channel communication group with audio of a sharedcommunication channel. The method 500 may be performed by a participantdevice (e.g., the participant device 105 of FIGS. 1-2). Moreparticularly, the method 500 may be performed by an applicationexecuting on the participant device (e.g., the dedicated application 143of FIG. 1B).

The method 500 begins when the participant device joins the sharedcommunication channel (block 502). For example, the user may interactwith the dedicated application to join a class hosted by a server, suchas the host platform 115 of FIGS. 1-2.

At block 504, the participant device forms a side-channel communicationgroup with at least one other participant device of the sharedcommunication channel. For example, the participant device may receive arequest to join a side-channel communication group from anotherparticipant. Accordingly, the participant device may form theside-channel communication group by transmitting an acceptancenotification to the server (e.g., in response to detecting aninteraction with the acceptance element 328). As another example, theparticipant device may form the side-channel communication group bytransmitting a request for another participant device to join theside-channel communication group (e.g., by detecting an interaction withthe selection confirmation element 308 of FIG. 3A). In response to theother participant device joining the side-channel communication group,the participant device may receive an acknowledgement from the serverthat the other participant agreed to join the side-channel communicationgroup.

At block 506, the participant device receives, from the server, a hostaudio stream generated by a host device of the shared communicationchannel. At block 508, the participant device receives, from the server,a side-channel audio stream that includes audio data generated by the atleast one other participant device included in the formed side-channelcommunication group. For example, the host audio stream may be the audiostream from the shared communication channel 170 of FIG. 2 and theside-channel audio stream may be the audio stream from the side-channelcommunication group 180 of FIG. 2.

In some embodiments, the host audio stream and the side-channel audiostream are received as part of a composite audio stream from the server.In these embodiments, the participant device may be able to adjustparameters, such as a volume level, associated with the component audiostreams of the composite audio stream. In other embodiments, the hostaudio stream and the side-channel audio stream are received as separateaudio streams.

At block 508, the participant device outputs a composite audio streamformed from the host audio stream and the side-channel audio stream. Inembodiments where the server mixed the composite audio stream, such asby following the techniques corresponding to the method 400, theparticipant device may route the received audio to an audio output ofthe participant device. In other embodiments, the participant device maybe configured to mix the host audio stream and the side-channel audiostream together. For example, the dedicated application may include anaudio mixer capable of mixing the audio streams in accordance with thetechniques described herein.

For example, to prioritize audio from presented by the host device tothe shared communication channel, the participant device may mix theside-channel audio stream with the host audio stream such that a volumelevel of the side-channel audio stream is less than a volume level ofthe host audio stream. As another example, the participant device maydynamically mix the host audio stream and the side-channel audio stream.For example, the participant device may be configured to determine thata magnitude of the host audio stream is below a first thresholdmagnitude and increase the volume level of the side-channel audio streamwithin the composite audio stream. Subsequently, the host platform maydetermine that the magnitude of the host audio stream is above a secondthreshold magnitude, and decrease the volume level of the side-channelaudio stream within the composite audio stream.

To smooth out the volume levels, the participant device may implementhysteresis techniques. As one example, the second threshold may be ahigher magnitude than the first magnitude. As another example, theparticipant device may determine that the magnitude of the host audiostream is below the first threshold magnitude for a threshold durationbefore adjusting the volume level of the side-channel audio stream. Thethreshold duration may vary depending on the type of sharedcommunication channel. For example, the server may categorize thecontents channel types and assign a threshold duration to each category.The participant device may then utilize the channel type identifier toapply the appropriate threshold duration.

The participant device may also be configured to receive, from a server(e.g. the music server 114 of FIGS. 1A-1B), a music audio streamassociated with the shared communication channel. It should beappreciated that the server from which the music stream is received maybe a different server than the server that hosts the sharedcommunication channel. Accordingly, the participant device may beconfigured to mix the music audio stream, the host audio stream and theside-channel audio stream to produce the composite audio stream.

In some embodiments, the participant device may be configured to outputthe composite audio stream by routing the composite audio streams torespective audio output devices. For example, the participant device mayinclude an internal audio output device (e.g., the audio output 145 ofFIG. 1B) and be operatively coupled to one or more external audio outputdevices (e.g., the audio output device 108 of FIG. 1B). Accordingly, theparticipant device may be configured to route the host audio stream tothe internal audio output device and the side-channel audio stream tothe external audio output device, or vice versa. As another example, theparticipant device may be configured to route the host audio stream andthe side-channel audio stream to the internal audio output device andthe music audio stream to the external audio output device.

ADDITIONAL CONSIDERATIONS

All of the foregoing computer systems may include additional, less, oralternate functionality, including that discussed herein. All of thecomputer-implemented methods may include additional, less, or alternateactions, including those discussed herein, and may be implemented viaone or more local or remote processors and/or transceivers, and/or viacomputer-executable instructions stored on computer-readable media ormedium.

The following additional considerations apply to the foregoingdiscussion. Throughout this specification, plural instances mayimplement components, operations, or structures described as a singleinstance. Although individual operations of one or more methods areillustrated and described as separate operations, one or more of theindividual operations may be performed concurrently, and nothingrequires that the operations be performed in the order illustrated.Structures and functionality presented as separate components in exampleconfigurations may be implemented as a combined structure or component.Similarly, structures and functionality presented as a single componentmay be implemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Additionally, certain embodiments are described herein as includinglogic or a number of routines, subroutines, applications, orinstructions. These may constitute either software (e.g., code embodiedon a machine-readable medium or in a transmission signal) or hardware.In hardware, the routines, etc., are tangible units capable ofperforming certain operations and may be configured or arranged in acertain manner. In example embodiments, one or more computer systems(e.g., a standalone, client or server computer system) or one or morehardware modules of a computer system (e.g., a processor or a group ofprocessors) may be configured by software (e.g., an application orapplication portion) as a hardware module that operates to performcertain operations as described herein.

The performance of certain of the operations may be distributed amongthe one or more processors, not only residing within a single machine,but deployed across a number of machines. In some example embodiments,the one or more processors or processor-implemented modules may belocated in a single geographic location (e.g., within a homeenvironment, a fitness studio environment, or a server farm). In otherexample embodiments, the one or more processors or processor-implementedmodules may be distributed across a number of geographic locations.

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting,” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or a combination thereof), registers, or othermachine components that receive, store, transmit, or displayinformation.

As used herein any reference to “one embodiment” or “an embodiment”means that a particular element, feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneembodiment. The appearances of the phrase “in one embodiment” in variousplaces in the specification are not necessarily all referring to thesame embodiment.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,method, article, or apparatus that comprises a list of elements is notnecessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus. Further, unless expressly stated to the contrary,“or” refers to an inclusive or and not to an exclusive or. For example,a condition A or B is satisfied by any one of the following: A is true(or present) and B is false (or not present), A is false (or notpresent) and B is true (or present), and both A and B are true (orpresent).

In addition, use of the “a” or “an” are employed to describe elementsand components of the embodiments herein. This is done merely forconvenience and to give a general sense of the description. Thisdescription, and the claims that follow, should be read to include oneor at least one and the singular also includes the plural unless it isobvious that it is meant otherwise.

What is claimed is:
 1. A system for providing side-channelcommunications to supplement a shared communication channel, the systemcomprising: one or more processors; one or more transceivers configuredto receive a plurality of audio streams from a plurality of audiosources, wherein the plurality of audio sources include a host audiosource and a plurality of participant audio sources corresponding to aplurality of participant devices; a user database configured to store aplurality of user profiles respectively associated with a plurality ofusers, wherein user profiles included in the plurality of user profilesinclude an indication of a permission level associated with joiningside-channel communication groups; and one or more non-transitorymemories configured to store (i) an indication that two or moreparticipant devices of the plurality of participant devices are membersof a side-channel communication group, and (ii) computer executableinstructions that, when executed via the one or more processors, causethe system to: for each participant device that is a member of theside-channel communication group: generate a side-channel audio streamby combining the audio streams received from other members of theside-channel communication group, generate an output audio stream bycombining the side-channel audio stream with the audio stream from thehost audio source, and transmit, to the participant device of the memberof the side-channel communication group and via the one or moretransceivers, the output audio stream; and for participant devices thatare not members of the side-channel communication group, transmit, tothe participant device and via the one or more transceivers, the hostaudio stream; receive, via the one or more transceivers, an indicationthat a particular participant device is to be added to the side-channelcommunication group; determine that the user profile corresponding tothe particular participant device includes a permission level thatpermits the particular participant device to join side-channelcommunications; and in response to the determination, add the particularparticipant device to the side-channel communication group.
 2. Thesystem of claim 1, wherein to generate the output audio stream, theinstructions, when executed, cause the system to: determine that amagnitude of the audio stream from the host audio source is below afirst threshold magnitude; and increase the volume level of theside-channel audio stream within the output audio stream.
 3. The systemof claim 2, wherein to determine that the magnitude of the audio streamfrom the host audio source is below the first threshold magnitude, theinstructions, when executed, cause the system to: determine that themagnitude of the audio stream from the host audio source is below thefirst threshold magnitude for a threshold duration.
 4. The system ofclaim 3, wherein: the shared communication channel is associated with anindication of a communication channel type; and the threshold durationvaries depending upon the communication channel type.
 5. The system ofclaim 2, wherein the instructions, when executed, cause the system to:subsequent to increasing the volume level of the side-channel audiostream, determine that the magnitude of the audio stream from the hostaudio source is above a second threshold magnitude; and decrease thevolume level of the side-channel audio stream within the output audiostream.
 6. The system of claim 1, wherein to generate the output audiostream, the instructions, when executed, cause the system to: mix theside-channel audio stream with the audio stream from the host audiosource such that a volume level of the side-channel audio stream is lessthan a volume level of the audio stream from the host audio source. 7.The system of claim 1, wherein the instructions, when executed furthercause the system to: obtain an indication that side-channelcommunications are disabled; and responsive to the indication, transmita participant audio stream to the plurality of participant devices. 8.The system of claim 1, wherein the instructions, when executed furthercause the system to: receive, via the one or more transceivers, anindication that a particular participant device is to be added to theside-channel communication group; and modify the indication that the twoor more participant devices of the plurality of participant devicescorrespond to participant devices that are members of the side-channelcommunication group to include an indication of the particularparticipant device.
 9. The system of claim 1, wherein user profilesincluded in the plurality of user profiles include an indication of aset of connected users associated with the user corresponding to theuser profile.
 10. A method for participating in side-channelcommunications to supplement a shared communication channel, the methodcomprising: joining, by one or more processors, the shared communicationchannel; forming, by the one or more processors, a side-channelcommunication group with at least one other participant device of theshared communication channel, wherein forming the side-channelcommunication group includes: determining, by one or more processors,that one or more participant devices in the shared communication channelcorrespond to connected users, and presenting, by one or moreprocessors, a user interface configured to present a user interfaceelement to initiate a request for one or more connected users join theside-channel communication group, wherein a user profile for the one ormore connected users indicates a permission level associated withjoining side-channel communication groups; receiving, from a server, ahost audio stream generated by a host device of the shared communicationchannel; receiving, from the server, a side-channel audio stream thatincludes audio data generated by the at least one other participantdevice included in the formed side-channel communication group; andoutputting, by the one or more processors, a composite audio streamformed from the host audio stream and the side-channel audio stream. 11.The method of claim 10, wherein receiving the host audio stream and theside-channel audio stream comprises: receiving, from the server, thecomposite audio stream.
 12. The method of claim 10, wherein outputtingthe composite audio stream comprises: mixing, by the one or moreprocessors, the host audio stream and the side-channel audio stream toproduce the composite audio stream.
 13. The method of claim 12, whereinproducing the composite audio stream comprises: determining, by the oneor more processors, that a magnitude of the host audio stream is below afirst threshold magnitude; and increasing, by the one or moreprocessors, the volume level of the side-channel audio stream within theoutput audio stream.
 14. The method of claim 13, wherein producing thecomposite audio stream comprises: subsequent to increasing the volumelevel of the side-channel audio stream, determining, by the one or moreprocessors, that the magnitude of the host audio stream is above asecond threshold magnitude; and decreasing, by the one or moreprocessors, the volume level of the side-channel audio stream within theoutput audio stream.
 15. The method of claim 10, wherein outputting thecomposite audio stream comprises: routing, by the one or moreprocessors, the host audio stream to a first output device; and routing,by the one or more processors, the side-channel audio stream to a secondoutput device.
 16. The method of claim 10, wherein forming theside-channel communication group comprises: receiving, from the server,a request to join the side-channel communication group; presenting, byone or more processors, a user interface configured to enable a user toaccept the request; and transmitting, to the server, an acceptance ofthe request.
 17. The method of claim 10, wherein outputting thecomposite audio stream comprises: receiving, from a server, a musicaudio stream associated with the shared communication channel; andmixing, by the one or more processors, the music audio stream, the hostaudio stream and the side-channel audio stream to produce the compositeaudio stream.
 18. A non-transitory computer readable medium storingcomputer-executable instructions that, when executed by one or moreprocessors, cause the one or more processors to: join a sharedcommunication channel; form a side-channel communication group with atleast one other participant device of the shared communication channel,wherein forming the side-channel communication group includes:determine, that one or more participant devices in the sharedcommunication channel correspond to connected users, and present a userinterface configured to present a user interface element to initiate arequest for one or more connected users join the side-channelcommunication group, wherein a user profile for the one or moreconnected users indicates a permission level associated with joiningside-channel communication groups; receive, from a server, a host audiostream generated by a host device of the shared communication channel;receive, from the server, a side-channel audio stream that includesaudio data generated by the at least one other participant deviceincluded in the formed side-channel communication group; and output acomposite audio stream formed from the host audio stream and theside-channel audio stream.
 19. The non-transitory computer readablemedium of claim 18, wherein to output the composite audio stream, theinstructions, when executed, cause the one or more processors to: mixthe host audio stream and the side-channel audio stream to produce thecomposite audio stream.
 20. The non-transitory computer readable mediumof claim 19, wherein to produce the composite audio stream, theinstructions, when executed, cause the one or more processors to:determine that a magnitude of the host audio stream is below a firstthreshold magnitude; and increase the volume level of the side-channelaudio stream within the output audio stream.